package com.demo2.todo.repository;
import com.demo2.todo.model.entity.Todo;
import com.demo2.todo.model.entity.User;
import com.demo2.todo.model.enums.ReviewStatus;
import com.demo2.todo.model.enums.TodoStatus;
import org.springframework.data.jpa.repository.JpaRepository;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;

/**
 * @author evi
 */

public interface TodoRepository extends JpaRepository<Todo, Long> {
    List<Todo> findByUserOrderByCreatedAtDesc(User user);
    Optional<Todo> findByIdAndUser(Long id, User user);
    List<Todo> findByUserIdOrderByCreatedAtDesc(Long userId);
    List<Todo> findAllByOrderByCreatedAtDesc();

    Optional<Todo> findByShareToken(String token);

    List<Todo> findByStatusAndDeadlineBetween(TodoStatus todoStatus, LocalDateTime now, LocalDateTime tomorrow);

    List<Todo> findByReviewStatus(ReviewStatus reviewStatus);
}
